🧭 Kubernetes | August 22, 2021
쿠버네티스 파드에 대해 알아보고, 싱글-멀티 컨테이너 파드 차이점에 대해 알아봅시다.
컨테이너를 표현하는 K8S API의 최소 단위
파드를 생성한는 방법은 2가지 - CLI 또는 정의된 yaml 파일을 통해서 실행이 가능
CLI 명령어로 nginx 파드 생성하기
$ kubectl run web1 --image=nginx:1.14 --port=80
$ cat > web2.yaml
apiVersion: v1
kind: Pod
metadata:
name: web2
spec:
containers:
- image: nginx:1.14
name: web2
ports:
- containerPort: 80
protocol: TCP
$ kubectl create -f web2.yaml
$ kubectl get pods web1 -o yaml
# 필요한 정보만 찾고 싶을 땐, grep -i 명령어가 유용
$ kubectl get pods web1 -o | grep -i podip
멀티 컨테이너 파드 사용방식
서로 유기적인 컨테이너 또는 결합도가 강한 애플리케이션 환경이라면 Multiple-Pod의 형태로 구성합니다.
$ cat > multi_pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: multipod
spec:
containers:
- image: nginx:1.14
name: nginx-container
ports:
- containerPort: 80
- image: centos:7
name: centos-container
command:
- sleep
- "10000"
위에서 만들었던 싱글 파드와 멀티 파드의 차이점 확인
describe
명령어를 통해 조금 더 자세히 확인해보기
exec
명령어를 통해 2개의 컨테이너 중 nginx 컨테이너 접속
-c
옵션은 container를 의미$ kubectl exec multipod -c nginx-container -it -- bash
curl
명령어로 동작확인
$ curl 10.36.0.2
알고가기
멀티 파드인 multipod
는 nginx, centos 2개의 컨테이너를 가지고 있는데, centos 컨테이너 안에서도 동일하게 curl 10.36.0.2:80
명령어가 동일하게 수행됩니다. 그 이유는 하나의 파드 안에서 동일한 네트워크를 사용하고 있기 때문입니다.
logs
명령어를 이용해 해당 컨테이너 로그 확인
-c
옵션이 불필요함$ kubectl logs multipod -c ngunx-container